<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

<script>
// Promise实例对象的then方法：
// then 然后。。。
// then()方法用于指定Promise对象成功和失败的回调函数，返回一个新的Promsie对象
// let p2 = p1.then(fn1,fn2);
// fn1 p1成功状态的回调函数
// fn2 p1失败状态的回调函数

let p1 = new Promise((resolve,reject)=>{// 执行器函数，同步执行
    console.log( '任务1' );
    setTimeout(function (){// 回调函数，异步执行
        console.log( '任务2' );
        let num = Math.round(Math.random()*10);// 0-10
        if (num > 5) {
            resolve(123);
        } else {
            reject(456);
        }
    },1000);
    console.log( '任务3' );
})

// then等待p1的状态改变
p1.then(// then本身，同步执行
    (result)=>{// 成功状态的回调函数，异步执行
        console.log( 'p1成功', result );
    },
    (result)=>{// 失败状态的回调函数，异步执行
        console.log( 'p1失败', result );
    }
);

</script>
</body>
</html>